package com.mpsc.api.unit;

import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class CollectionUtil {

    /**
     * 将一个大的集合切割为多个小的集合
     *
     * @param list 需要切割的集合
     * @param size 切割后各个集合的大小
     * @return List<List < T>>
     */
    public static <T> List<List<T>> subList(List<T> list, int size) {
        List<List<T>> resultList = new ArrayList<>();
        if (!CollectionUtils.isEmpty(list)) {
            List<T> result = new ArrayList<>();
            resultList.add(result);
            for (int i = 0, len = list.size(); i < len; i++) {
                result.add(list.get(i));
                if (result.size() == size && i != len - 1) {
                    result = new ArrayList<>();
                    resultList.add(result);
                }
            }
        }
        return resultList;
    }

    /**
     * 判断集合中未存在值
     *
     * @param collection 集合
     * @return boolean
     */
    public static boolean isEmpty(Collection collection) {
        if (collection == null || collection.size() == 0) {
            return true;
        }
        return false;
    }

    /**
     * 判断集合是否存在值
     *
     * @param collection 集合
     * @return boolean
     */
    public static boolean isNotEmpty(Collection collection) {
        if (null != collection && collection.size() > 0) {
            return true;
        }
        return false;
    }
}
